package com.itheima.arraylistdemo;

import java.util.ArrayList;

/*
 *ArrayList集合的案例1
 *          目的:模拟购物车,批量化删除数据
 *
 * */
public class ArrayListDemo02 {
    public static void main(String[] args) {
        //1.创建集合对象,存储购物车数据
        ArrayList<String> list = new ArrayList<>();
        list.add("Java入门");
        list.add("宁夏枸杞");
        list.add("黑枸杞");
        list.add("陈平安");
        list.add("体积枸杞");
        list.add("枸杞子");

        //2.遍历几个中的每个数据,只要这个数据包含枸杞,我们就从集合中删除这个数据
        for (int i = 0; i < list.size(); i++) {
            String name = list.get(i);//获取集合中的每一个元素
            if (name.equals("枸杞")){
                //从集合中直接干掉这个数据
                list.remove(name);
                i--;//要进行减1,否则无法否则会错开一个元素,因为但删除一个元素是,集合后面的元素会往前补,而i++往后走,导致会错开一个,删除不干净
                //方式一:每删除一个数据后,索引-1
            }
        }

        //方式2:从集合后面遍历然后删除, 可以避免漏掉的数据
        //3.创建一个新的集合进行样式
        ArrayList<String> list2 = new ArrayList<>();
        list2.add("Java入门");
        list2.add("宁夏枸杞");
        list2.add("黑枸杞");
        list2.add("陈平安");
        list2.add("体积枸杞");
        list2.add("枸杞子");
        //方式2成功的原因-->当删除一个元素时,后面的元素会往前补,而i--,也是往前走,所以不会错开
        //遍历集合中的每个元素, 只要这个元素包含枸杞, 我们就从集合中删除这个元素
        for (int i = list2.size() - 1; i >= 0; i++) {
            String name = list2.get(i);
            if (name.equals("枸杞")){
                list2.remove("name");
            }
        }
    }
}
